package com.hxkj.service;

import com.hxkj.domain.po.Templet;
import com.hxkj.domain.po.TemplteTree;
import com.platform.common.domain.result.ResultDataStruct;
import com.platform.common.domain.result.ResultMessageStruct;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 网站模板Service
 * <p>
 * Created by yaosy on 2018年6月6日
 */
public interface TemplteService {


    /**
     * 新增模板
     *
     * @param templet 模板信息
     * @throws Exception
     */
    Templet saveContent(Templet templet)throws Exception;

    /**
     * 新增目录
     *
     * @param templet 模板信息
     * @throws Exception
     */
    Templet saveFolder(Templet templet)throws Exception;

    /**
     * 获取功能列表
     * @return
     */
    List<TemplteTree> getTempletTree(Templet templet) throws Exception;

    /**
     * 模板编辑
     * @param templet
     * @return
     * @throws Exception
     */
    ResultMessageStruct modify(Templet templet)throws Exception;

    /**
     * 删除模板
     *
     * @param templet
     * @throws Exception
     */
    ResultMessageStruct remove(Templet templet)throws Exception;


    /**
     * 获取单条模板数据
     * @return
     */
    ResultDataStruct<Templet> get(Templet templet) throws Exception;

    /**
     * 获取功能列表
     * @return
     */
    List<TemplteTree> getTree(Templet templet) throws Exception;


    /***
     * 上传文件后保存到数据库当中
     *
     * @param templet
     * @throws Exception
     * ***/
    Templet saveUploadContent(Templet templet)throws Exception;


    /****
     * 切换模板
     * ***/
    void switchTemplte(Templet templet)throws Exception;

    /**
    * @author Mr.zheng
    * @Description downloadTemplet 根据站点下载模板ID
    * @Date 9:31 2018/8/17
    * @Param [request, response, templet]
    * @return void
    **/
    void downloadTemplet(HttpServletRequest request, HttpServletResponse response, Templet templet) throws Exception;

    /**
    * @author Mr.zheng
    * @Description visuaTempletTree 可视化模板接口
    * @Date 18:25 2018/8/23
    * @Param [templet]
    * @return com.platform.common.domain.result.ResultDataStruct<java.util.List<com.hxkj.domain.po.TemplteTree>>
    **/
    List<TemplteTree> visuaTempletTree(Templet templet) throws Exception;
}
